import axios from 'axios'
import qs from 'qs'
import store from '@/store/index'
import router from '@/router/index'
let instance = axios.create() // 创建axios实例

// 针对instance处理统一的 业务异常  基于响应拦截器
instance.interceptors.response.use((response) => {
  // 统一异常处理 400业务状态码  注意位业务状态码
  /* if (response.data.code === 400) {

  } else if (response.data.code === 401) {
    // 跳转到登录页面
  } */
  return response;
})


// 针对instance添加请求拦截器
instance.interceptors.request.use(config => {

  /* let token = store.state.token;
  if (token) {
    config.headers['Authorization'] = token;
  } */
  return config;
})

const myaxios = {
  /**
   * 发送get请求
   * @param {string} url 请求资源路径
   * @param {object} params  请求参数对象
   */
  get(url, params) {
    return instance({
      url,
      method: 'GET',
      params
    })
  },

  /**
   * 发送post请求
   * @param {string} url  请求资源路径
   * @param {object} params  请求参数对象 {k:v, k2:v2}
   * @returns Promise
   */
  post(url, params) {
    return instance({
      url,
      method: 'POST',
      data: params
    })
  },
  /**
   * 发送delete请求
   * @param {string} url  请求资源路径
   * @param {object} params  请求参数对象 {k:v, k2:v2}
   * @returns Promise
   */
  delete(url, params) {
    return instance({
      url,
      method: 'DELETE',
      data: params
    })
  },

  /**
     * 发送put请求
     * @param {string} url  请求资源路径
     * @param {object} params  请求参数对象 {k:v, k2:v2}
     * @returns Promise
     */
  delete(url, params) {
    return instance({
      url,
      method: 'PUT',
      data: qs.stringify(params)
    })
  },


}




export default myaxios